package com.ruoyi.project.lease.order.mapper;

import java.util.List;
import com.ruoyi.project.lease.order.domain.Order;

/**
 * 订单管理Mapper接口
 * 
 * @author admin
 * @date 2022-01-04
 */
public interface OrderMapper 
{
    /**
     * 查询订单管理
     * 
     * @param orderId 订单管理主键
     * @return 订单管理
     */
    public Order selectOrderByOrderId(Long orderId);

    /**
     * 查询订单管理列表
     * 
     * @param order 订单管理
     * @return 订单管理集合
     */
    public List<Order> selectOrderList(Order order);

    /**
     * 新增订单管理
     * 
     * @param order 订单管理
     * @return 结果
     */
    public int insertOrder(Order order);

    /**
     * 修改订单管理
     * 
     * @param order 订单管理
     * @return 结果
     */
    public int updateOrder(Order order);

    /**
     * 删除订单管理
     * 
     * @param orderId 订单管理主键
     * @return 结果
     */
    public int deleteOrderByOrderId(Long orderId);

    /**
     * 批量删除订单管理
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrderByOrderIds(String[] orderIds);


    /**
     * 设置订单状态
     *
     * @param orderId 订单管理主键
     * @param orderStatus 订单状态
     * @return 结果
     */
    public int changeStatusOrderByOrderId(Long orderId, int orderStatus);

    /**
     * 查看指定客户编号、订单状态的订单
     *
     * @param custNo 客户编号
     * @param orderStatus1 待确认状态
     * @param orderStatus2 租出状态
     *
     * @return 结果
     */
    public List<Order> selectOrderByCustNoAndStatus(Long custNo, int orderStatus1, int orderStatus2);

    /**
     * 查询本月新订单数
     * @param monthFirstStr 本月第一天
     * @param monthLastStr 本月最后一天
     * @return 新订单数
     */
    public Long selectThisMonthNewOrder(String monthFirstStr, String monthLastStr);
}
